This invention relates to the field of information technology, and more particularly to the field of enterprise application integration.
With the advent of computer applications, many business processes have become faster and more efficient; however, the proliferation of different computer applications that use different data structures, communication protocols, languages and platforms has also made the information technology infrastructure of the typical business enterprise more complex. Different business processes within the typical enterprise may use different computer applications, each computer application being developed and optimized for the particular business process, rather than for the enterprise as a whole. For example, a business may have one computer application for tracking accounts payable and a different computer application for keeping track of customer contacts. In fact, even the same business process may use more than one computer application, such as when an enterprise keeps a centralized customer contact database, but employees keep their own contact information, such as in a personal information manager.
While specialized computer applications offer the advantages of custom-tailored solutions, the proliferation leads to inefficiencies, such as repetitive entry and handling of the same data many times throughout the enterprise, or the failure of the enterprise to capitalize on data that is associated with one process when the enterprise executes another process that could benefit from that data. For example, if the accounts payable process is separated from the supply chain and ordering process, the enterprise may accept and fill orders from a customer whose credit history would have caused the enterprise to decline the order. Many other examples can be provided where an enterprise would benefit from consistent access to all of its data across varied computer applications.
A number of companies have recognized and addressed the need for integration of data across different applications in the business enterprise. Thus, enterprise application integration, or EAI, is a valuable field of computer application development. As computer applications increase in complexity and number, enterprise application integration efforts encounter many challenges, ranging from the need to handle different protocols, the need to address ever-increasing volumes of data and numbers of transactions, and an ever-increasing appetite for faster integration of data. Conventional approaches to EAI have involved forming and executing data integration jobs. A typical data integration job may include extracting data from one or more sources of data, transforming the data (which might include merging one set of with data from another source), and loading the data into a target. This process of extraction, transformation and loading being sometimes referred to as ETL. Various approaches to EAI have been proposed, including least-common-denominator approaches, atomic approaches, and bridge-type approaches. These approaches typically work in batch mode, extracting large amounts of data from a given application in batch form and supplying it to one or more other applications in a format suitable for those applications. However, a batch mode is typically executed at specified times, so that the data are not available in real time.
Accordingly, a need exists for enterprise application integration methods and systems that can provide data integration in real time, instead of or in addition to batch mode.